#!/bin/bash

file_dir="$1"

ext="$2"

if [ "$ext" == "" ]; then
    echo "无效的文件后缀"
    exit 1
fi

# 定义函数去除尾部指定字符串
rtrim() {
    local string="$1"
    local suffix="$2"    
    # 使用 parameter expansion 去除尾部指定字符串
    # `${string%suffix}` 会去除 `$suffix` 在 `$string` 末尾的部分
    echo "${string%"$suffix"}"
}

# 检查是否提供了目录路径
if [ -z "$1" ]; then
  echo "请提供要处理的文件夹路径。"
  exit 1
fi

# 获取目录路径
dir_path=$(rtrim "$file_dir" "/")

# 检查目录是否存在
if [ ! -d "$dir_path" ]; then
  echo "目录不存在：$dir_path"
  exit 1
fi

# 遍历目录中的所有图片文件（假设图片文件扩展名为 jpg, jpeg, png, gif）
find "$dir_path" -maxdepth 1 -type f -name "*.$ext" | while read -r old_file_path; do

if [ "$old_file_path" != "" ]; then
  # 计算文件的 MD5 哈希值
  md5_value=$(md5 -q "$old_file_path")
#  # 获取文件的扩展名
  file_extension="${old_file_path##*.}"
#  # 创建新的文件名
  new_file_name="${md5_value}.${file_extension}"
  new_file_path="${dir_path}/${new_file_name}"
  if [ -f "$new_file_path" ]; then
    if [ "$new_file_path" != "$old_file_path" ]; then
      echo "文件已存在，删除：$old_file_path"
      rm "$old_file_path"
    fi
  else
   mv "$old_file_path" "$new_file_path"
   echo "文件已重命名为：$new_file_path"
  fi
fi
done

